The field of the present invention relates to data reading devices, such as barcode scanners and other barcode reading devices. In particular, barcode readers are described herein which employ methods whereby the capture rate of reading labels with add-ons is improved without sacrificing throughput with respect to non-add-on labels.
Barcode labels encode information in a variety of formats, i.e., symbologies, and are commonly employed in applications such as inventory control systems and, most familiarly, affixed to consumer goods for retail store check-out, among others. Typically, the information encoded on each label uniquely identifies the product or product line. Such information, once decoded, may be used to identify other information, e.g., price, associated with the labeled object.
A barcode label typically comprises a series of parallel dark bars of varying widths with intervening fight spaces, also of varying widths. Character information (which can, e.g., be alpha-numeric) is encoded in the labels by the specific sequence of bars and spaces with groupings of bars and spaces representing the character information. The precise nature of the representation depends on the particular barcode symbology in use.
One traditional symbology is the Universal Product Code (UPC) label in which each character is made up of two bars and two interleaved spaces. The width of each character is measured in units called xe2x80x9cmodulesxe2x80x9d with each character being seven modules in width. The width of any particular bar or space within the character representation is between one and four modules. The character value depends on the relative width in modules of the two bars and two spaces it comprises. For example, indicating bars with a 1 and spaces with a 0, a sequence of 111 would represent a bar that is three modules in width. The character value 5 may be represented as 0110001, i.e., one space that is 1 module in width, one bar that is 2 modules in width, one space that is 3 modules in width, and one bar that is one module in width, respectively. Likewise, the character 3 may be represented as 0111101.
With respect to the UPC label symbology alone there are many variations, such as UPC-A, UPC-E, etc. With the exception of UPC-E labels, the UPC symbologies comprise right and left segment halves. In addition to the UPC formats, a variety of other label formats exist which vary, among other ways, in structure, content, parity requirements, and type of feature characters. Code 39 and Code 128, for example are both non-segmented label formats, i.e., they have no center feature characters separating two or more segments of bars. Furthermore, many new label encoding schemes have been developed which have differing pattern structures for the dark and light areas. Exemplary of these newer code types are the stacked bar code formats referred to as Code 49 and PDF 417.
As indicated previously, with respect to the traditional symbologies such as UPC, the character information encoded in the barcode is represented by the specific sequence of bar and space widths. In addition to data characters, many labels utilize feature characters such as center or guard characters, as delimiters or to separate segments of the label. Most UPC labels, as noted above, have left and right segment halves. These segment halves are separated by a center band character that typically comprises two single module bars and three interleaved single module spaces. The beginning and end of the label are delimited by a pair of guard characters, each of which typically comprises two single module bars and one interleaved, single module space. The bar/space representations of these feature characters are unique from that of data characters to enhance detection and decoding capability. Furthermore, an unprinted margin area or white space is typically located outwardly of the two guard characters. In a further variation, a typical UPC/EAN barcode may or may not also include an additional piece of information in the form of a second, adjacent barcode called an xe2x80x9cadd-onxe2x80x9d located beyond the white space margin beyond the end guard character.
Optical scanning systems and other data reading systems, e.g., barcode readers, use various devices and methods for the purpose of reading such labels, identifying the particular label format, and decoding the information stored in the label. Common types of barcode readers include spot scanners and line scanners. In either case, one or more light sources, such as a laser or laser diode, are utilized to scan the label with a collection subsystem detecting at least a portion of the light reflected from the label, distinguishing between dark and light areas, and converting the optical information into an electronic signal that may be recognized by a computer or other electronic system.
In spot scanners, a reading spot is systematically moved across the barcode, either manually or automatically. The resultant paths followed by the scanned illumination beam are typically referred to as a scan lines. A photodetector monitors the reflected or back-scattered light from each scan line. The photodetector may generate a high current when a large amount of light scattered from the barcode impinges on the detector, as from a light space, and likewise may produce a lower current when a small amount of light scattered from the barcode impinges on the photodetector, as from a dark bar.
With respect to line scanner systems, the barcode is focused onto a multi-element linear or areal photodetector array and the image of the barcode is detected. Though some imaging systems employ ambient light to illuminate the barcode, a light, source may also illuminate the barcode to provide the required signal response corresponding to the image. The imaging optics which produce an image of the barcode on the photodetector array can alternatively be thought of as projecting an image of the photodetector array (a xe2x80x9cvirtual scan linexe2x80x9d) into the scan volume in a manner completely analogous to the real scan line produced by a spot scanner. Further, scan pattern generating optics may be used to project multiple virtual scan lines into the scan volume in various directions and at varying orientations, thereby generating a virtual scan pattern, once again completely analogous to the real scan pattern produced by a spot scanner. Such a virtual scan line system is disclosed in U.S. Pat. No. 5,446,271 hereby incorporated by reference.
Regardless of which type of barcode reader is used, a raw electronic signal is generated from which the relative widths of the bars and spaces must be extracted. The electronic signal that is generated typically comprises a signal wherein voltage alternates between two preset voltage levels, one representative of the dark bars and the other representative of the light spaces. The temporal widths of these alternating pulses of high and low voltage levels correspond to the spatial widths of the bars and spaces. High-to-low or low-to-high transitions in the electronic signal voltage, representing edges of the bars and spaces (i.e., elements) in the barcode, may be detected by any of a number of means well known in the art. A common and well-known technique for edge detection is through the use of a derivative based signal processor such as is described by example in U.S. Pat. No. 4,000,397 entitled xe2x80x9cSignal Processor Method and Apparatusxe2x80x9d issued in the name of Hebert et al. and owned by the owner of the present application, which patent is hereby incorporated by reference as if fully set forth herein. The temporal sequence of alternating voltage pulses of varying widths comprising the electronic signal is then presented to an electronic decoding apparatus for decoding of the information encoded in the barcode.
As a practical matter, recovering information from optical code labels poses many difficulties that must be overcome by a scanning system. For example, in order to read a label completely, i.e., from left guard character or margin to right guard character or margin, in a single optical pass, the label must be properly oriented with respect to the scanning beam. Early prior art scanner systems depended upon individual scan lines extending across the entire barcode for the barcode to be successfully read. Failure to read in a single pass in such systems would require the object to be re-positioned and re-scanned until a successful read was obtained. These systems presented difficulties and inefficiencies in real-time, practical applications wherein the orientation of a barcode vis-a-vis the scanner was hard to control.
Even where a label is not scanned completely in a single read, the typical thirty to forty scans of the label generated from an omnidirectional scanning system typically provide some partial label information in each of multiple scan lines. Present systems incorporate specialized piecing mechanisms, comprising software or electronics, that have been developed and are capable of taking partial portions of barcodes and assembling them into a complete code, a process commonly known as stitching. Further details regarding exemplary stitching methods and systems may be found in U.S. Pat. No. 5,493,108, entitled xe2x80x9cMethod and Apparatus for Recognizing and Assembling Optical Code Labelsxe2x80x9d and issued in the name of inventors Craig D. Cherry and Donald D. Dieball, which patent is owned by the owner of the present application and is hereby incorporated by reference as if fully set forth herein.
As indicated previously, a typical UPC/EAN barcode, as well as certain other symbologies, may or may not include an additional piece of information in the form of a second, adjacent barcode called an xe2x80x9cadd-onxe2x80x9d. In the case where an optional add-on is present, it typically provides information that is supplemental, though generally not critical, to that provided in the base label alone. For example, with respect to retail goods, a typical base label (with or without add-on) may contain information regarding a manufacturer and the item identifier. This information, once decoded, may be used to look up and register price information, to adjust inventory quantities, etc. The add-on label may provide additional detailed information that may be used for inventory, statistical tracking, and other reasons. For example, with respect to periodical materials, the add-on may provide information regarding volume numbers, months, etc. Similarly, with respect to greeting cards, an add-on may provide seasonal references.
Whether or not an add-on does accompany a particular label, the general structure of the base label itself remains defined by the particular symbology. That is, for example, a UPC base label has the same general structure whether or not an add-on is present (i.e., start and end characters with the same characteristics, center characters with the same characteristics where applicable, the same number of data characters defined by the same relationships, etc.). Scanning systems typically use such symbology characteristics to identify when a valid read of label information has been obtained. There is typically no separate character or characteristic within a base label to indicate that an add-on is present.
Since the scanner typically does not xe2x80x9cknowxe2x80x9d whether or not an add-on portion is present with respect to a particular label being scanned, it is possible that the scanner could read the appropriate number and position for start, end, center and data characters in a base label and think that it has identified a complete label. Thus, should a scan line(s) cross the base label portion without crossing the add-on portion, the system may decode the base label portion and assume that the complete label has been decoded. Indeed, even where partial scans of the label are stitched together, the possibility may exist that the add-on portion of the label is missed while the base label information is pieced together from multiple scans.
The capability of an omnidirectional barcode scanner to capture both the xe2x80x9cbasexe2x80x9d, e.g., standard UPC/EAN 12/13 digit code, along with the add-on is degraded by the random nature of the label crossing the various scan lines; for example, the label may be mis-framed and/or read diagonally across the base label portion without the add-on portion being scanned. In such cases, data from the add-on portion may be missed entirely on one or more scans of the label. In short, there is no guarantee that both the base and add-on portions of the label will scanned successfully in any one pass of the labeled item past the scanner, let alone in the first pass. This is particularly problematic since a primary goal of a scanner system is to achieve a high first pass read rate with optimum throughput.
The above situation presents a conflict for scanner system designers. On the one hand, if it is desired to capture the add-on data reliably with the base label data, then the scanner must not consider that the scanning task for a particular label is finished until it has a high degree of confidence that no add-on data exists with that label. On the other hand, if it is desired to have the optimal read rate for labels, then the scanner preferably accepts labels once they are successfully read without requiring further scanning to search for an add-on that may not exist.
In the past, scanner designers have identified two primary techniques in an attempt to address this conflict.
In one technique, a programmable number of extra base label reads is utilized under the assumption that if the number of reads of the base label is increased, then the chances that add-on information would show up in at least one read is increased. Of course, the disadvantage to this technique lies in the fact that it sacrifices any possibility for a successful first pass read rate for labels without add-ons present. If the number of reads required is increased from one, first pass read rate, and thus overall system throughput, degrades rapidly for all non-add-on labels.
In another technique that has been used, a programmable mode looks for specific data in the base label that may be associated with an add-on label. The disadvantage of this technique is that all base label data for any labels which incorporate an add-on must be programmed into the scanner before installation or must be configured in the scanner by the customer through programming labels or an interface connection. While the scanner can be programmed with this information, it does require significant additional memory, as well as additional processing time for add-on checks to be performed, thus increasing the cost of the scanner and decreasing efficiency. Also, where customer programming is required, such programming may be cumbersome and, if done incorrectly or not at all, leads to susceptibility to inaccurate processing of label information where add-ons are present. More problematic, however, is the fact that symbologies may change over time with new symbologies being created and others being revised to incorporate add-on information. Thus, programming information would need to be kept up to date and updated regularly in all installations for optimum performance.
Accordingly, there is a need for a scanner system that offers improved capture rate of add-on label information without sacrificing throughput and first pass read rate of non-add-on labels.
The present disclosure relates to systems and methods whereby the capture rate in relation to labels with add-ons is improved without sacrificing throughput with respect to non-add-on labels. The instant method comprises a mode in which the scanner xe2x80x9clearnsxe2x80x9d over time which base label codes will have associated add-ons. In a preferred embodiment, this learning mode is a programming mode that is optionally selectable by the user and/or configured upon system installation.
In a preferred embodiment, when the scanner is first started in an installation, the required number of reads of base label information is set to a programmable lower limit which may be one or, depending upon the nature of the symbology(ies) to be read, may be a higher number established so as to satisfactorily ensure capture of label information for that symbology. Determinations regarding minimum read requirements for various known symbologies are familiar to those skilled in the art. Setting such a lower limit allows for the highest throughput of all items, but may not allow the highest possible add-on capture rate. As the scanner successfully reads both a base label and its add-on data, the base label data is stored in a list in the scanners memory. In addition to storing this base label data, the required number of reads of this particular base label is increased to a second programmable number which is higher than the first and preferably high enough to obtain a reasonable add-on capture rate. Through this method, future scans of base labels corresponding to that of one in the list store will result in additional read attempts when the add-on information has not already been captured in order to ensure that the anticipated add-on information is captured successfully. With respect to non-add-on labels, however, the initially set low number of reads is utilized to provide for optimum throughput and first pass read rate where possible. In an alternate preferred embodiment, the scanner may keep statistics on the base label successful reads and the associated add-on successful reads. Based upon this information, the scanner may adjust the required number of reads of a particular base label in order to optimize add-on capture rates with respect to future scans of that corresponding base label.
In either embodiment above, once the required number of reads of the base label have been met (either in accordance with the initial lower limit or the increased number), then the scanner will consider the label to be complete regardless of whether or not the associated add-on has been identified. The system will then accept and send the base label data as valid without further delay. This operation, too, differs from the xe2x80x9cconditionalxe2x80x9d mode that is utilized in some current scanners wherein a base label will never be read alone if there is supposed to be an add-on associated with it.
In a further aspect of the instant system and methods, the scanner may order the list of stored base label data and/or may keep only those base labels in the list that meet certain criteria, such as frequency of occurrence. In this way the scanner does not need to have such extensive memory for the base label list. In the preferred embodiment, the list would be kept in non-volatile memory in order to retain the data in the event of power losses.
The preferred embodiments herein may advantageously offer improved capture rate of add-on label information without sacrificing throughput and first pass read rate with respect to non-add-on labels. Accordingly, the preferred embodiments herein may provide one or more of the following objects and advantages:
to provide a scanner-system which exhibits improved scanner add-on capture rate while maintaining an optimally high first pass read rate;
to provide a scanner system which exhibits improved add-on capture rate without sacrificing throughput with respect to non-add-on labels;
to provide a scanner system which learns over time which base label codes have associated add-ons;
to provide a scanner system which stores base label data in a list upon successful read of a base label and add-on;
to provide such a scanner system in which the amount of memory required to store base label data is minimized.